Advertisement
Guest User

Untitled

a guest
Feb 17th, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.97 KB | None | 0 0
  1.  
  2. /* ------------------------------------------------------------------------ */
  3. // ISR function to read the analog pins.
  4. /* ------------------------------------------------------------------------ */
  5. ISR(ADC_vect)
  6. {
  7.     BITS_CLEAR(ADCSRA, ADSC);    
  8.     uint8_t adc_low = ADCL;
  9.     // read adc1, and set next channel as adc2
  10.     if (adc_i == 1) {
  11.         adc_i++;
  12.         adc_1_value = ((ADCH <<8) | adc_low);
  13.         // MUX:0010  -> ADC2
  14.         BITS_CLEAR(ADMUX, MUX0);
  15.         BITS_SET(ADMUX, MUX1);
  16.     }
  17.     else if (adc_i == 2) {
  18.         adc_i++;
  19.         adc_2_value = ((ADCH <<8) | adc_low);
  20.         // MUX:0011  -> ADC3
  21.         BITS_SET(ADMUX, MUX0);
  22.     // read adc3, and set next channel as adc1
  23.     }
  24.     else if (adc_i == 3) {
  25.         adc_i = 1;
  26.         adc_3_value = ((ADCH <<8) | adc_low);
  27.         // MUX:0001 -> ADC1
  28.         BITS_CLEAR(ADMUX, MUX1);            
  29.     }
  30.     // start the adc measurements      
  31.     BITS_SET(ADCSRA, ADSC);      
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement